package com.ruoyi.web.controller.pdf;

import com.alibaba.fastjson.JSONObject;
import com.amazonaws.util.CollectionUtils;
import com.ruoyi.system.domain.AppCreateJobBill;
import lombok.extern.slf4j.Slf4j;
import lombok.val;

import java.util.List;
import java.util.Map;
import java.util.Objects;

@Slf4j
public class Change {

    protected static Map<String, Object> check(AppCreateJobBill appCreateJobBill) {
        switch (appCreateJobBill.getJobType()) {
            case "2":
                return dhJobChange(appCreateJobBill);
        }
        return null;
    }

    protected static Map<String, Object> dhJobChange(AppCreateJobBill appCreateJobBill) {
        Map<String, Object> map = JSONObject.parseObject(appCreateJobBill.getContent());
        // 作业申请单位
        map.put("jobApplyCompany", map.get("jobApplyCompany"));
        // 申请人
        map.put("sqr", map.get("sqr"));
        // 作业申请时间
        map.put("jobApplyDate", map.get("jobApplyDate").toString().substring(0, 10));
        // 动火作业级别
        if (null != map.get("dhzyjb")) {
            if ("二级（72H）".equals(map.get("dhzyjb"))) {
                String value = "\uF0A8 特级（8H）  \uF0A8 一级（8H）  √ 二级（72H）";
                map.put("dhjbv", value);
            }

        }
        //map.put("dhzyjb", map.get("dhzyjb"));
        // 动火方式
        map.put("dhfs", map.get("dhfs"));
        // 动火地点及部位
        map.put("local", map.get("local"));
        // 作业内容
        map.put("zynr", map.get("zynr"));
        // 动火作业实施时间 开始 —— 结束
        List<String> list = JSONObject.parseArray(map.get("jobDate").toString(), String.class);
        if (!CollectionUtils.isNullOrEmpty(list)) {
            map.put("jobDate", list.get(0).substring(0, 10) + " ~ " + list.get(1).substring(0, 10));
        }
        // 作业单位
        map.put("zydw", map.get("zydw"));
        // 动火人及证书编号 dhr dhrzsbh
        map.put("dhr", map.get("dhr") + " / " + map.get("dhrzsbh"));
        //map.put("dhrzsbh", map.get("dhrzsbh"));
        // 关联的其他特殊作业及安全作业票编号：
        map.put("other", map.get("other"));
        // 作业负责人：
        map.put("zyfzr", map.get("zyfzr"));
        // 风险辨识结果
        if (null != map.get("risk")) {
            List<String> listRisk = JSONObject.parseArray(map.get("risk").toString(), String.class);
            if (CollectionUtils.isNullOrEmpty(listRisk)) {
                map.put("risk", listRisk.get(0) + "," + listRisk.get(1));
            }
        }
        // 安全措施_1 确认人
        map.put("qianming1", map.get("qianming1"));
        // 安全措施_2（所在单位）
        map.put("aqcsinput1", map.get("yesOrNo2"));
        // 安全措施_2 确认人
        map.put("qianming2", map.get("yesOrNo3"));
        // 安全措施_3 确认人
        map.put("qianming3", map.get("yesOrNo4"));
        // 安全措施_4 确认人
        map.put("qianming4", map.get("yesOrNo4"));
        // 安全措施_5 确认人
        map.put("qianming5", map.get("yesOrNo5"));
        // 安全措施_6 确认人
        map.put("qianming6", map.get("yesOrNo6"));
        // 安全措施_7 确认人
        map.put("qianming7", map.get("yesOrNo7"));
        // 安全措施_8 （所在单位）
        map.put("aqcsinput2", map.get("yesOrNo8"));
        // 安全措施_8 确认人
        map.put("qianming8", map.get("yesOrNo8"));
        // 安全措施_9 确认人
        map.put("qianming9", map.get("yesOrNo9"));
        // 安全措施_10 确认人
        map.put("qianming10", map.get("yesOrNo10"));
        // 安全措施_11 确认人
        map.put("qianming11", map.get("yesOrNo11"));
        // 安全措施_12 确认人
        map.put("qianming12", map.get("yesOrNo12"));
        // 安全措施_13 确认人
        map.put("qianming13", map.get("yesOrNo13"));
        // 安全措施_14 确认人
        map.put("qianming14", map.get("yesOrNo14"));
        // 安全措施_15 确认人
        map.put("qianming15", map.get("yesOrNo15"));
        // 安全措施_16 其他安全措施：
        map.put("qtaqcs", map.get("qtaqcs"));
        // 编制人：
        map.put("bzr", map.get("bzr"));
        // 安全交底人
        map.put("aqjdr", map.get("aqjdr"));
        // 接受交底人
        map.put("jsjdr1_jsjdr2_jsjdr3", map.get("jsjdr1") + "," + map.get("jsjdr2") + "," + map.get("jsjdr3"));
        // 监护人
        map.put("bmjhr", map.get("bmjhr"));
        // 防火人
        map.put("fhjhr", map.get("fhjhr"));
        // 作业负责人意见(作业单位)（签名）：
        Object yjqm1 = map.get("yjqm1");
        log.info("log--yjqm1:{}", yjqm1);
        if (!Objects.isNull(yjqm1)) {
            map.put("yjqm1", yjqm1);
        }
        map.put("qianmingDt1", map.get(""));
        // 所在单位意见（签名）：
        map.put("yjqm2", map.get("yjqm2"));
        map.put("qianmingDt2", map.get(""));
        // 安保部意见（签名）：
        map.put("yjqm3", map.get("yjqm3"));
        map.put("qianmingDt3", map.get(""));
        // 动火审批人意见[特级、一级（总经理室）、二级（安保部）]（签名）：
        map.put("yjqm4", map.get("yjqm4"));
        map.put("qianmingDt4", map.get(""));
        //（分析合格后）动火前验票：特级（总经理室）、一级（安保部）、二级（所在单位）签字：
        map.put("yjqm5", map.get("yjqm5"));
        map.put("qianmingDt5", map.get(""));
        // 实际动火时间（所在单位监护人签名）：
        map.put("yjqm6", map.get("yjqm6"));
        map.put("qianmingDt6", map.get(""));
        // 完工验收（所在单位监护人签名）：
        map.put("yjqm7", map.get("yjqm7"));
        map.put("qianmingDt7", map.get(""));
        return map;
    }

}
